///PHILOTES Source Code.  (C)2012 PhiloLabs
#pragma once

#ifndef __DynLibManager_H__
#define __DynLibManager_H__

#include "OgrePrerequisites.h"
#include "OgreSingleton.h"

namespace Ogre {
	
	
	
    class _OgreExport DynLibManager: public Singleton<DynLibManager>, public MemAlloc_General
    {
	protected:
		typedef map<String, DynLib*>::type DynLibList;
		DynLibList mLibList;
    public:
        
        DynLibManager();

        
        virtual ~DynLibManager();

        
        DynLib* load(const String& filename);

		
		void unload(DynLib* lib);

		
        static DynLibManager& getSingleton(void);
        
        static DynLibManager* getSingletonPtr(void);
    };
	
	
}

#endif
